package com.sugon.projectManager.domain;

import java.math.BigDecimal;
import java.util.Date;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sugon.common.annotation.Excel;
import com.sugon.common.core.domain.BaseEntity;

/**
 * 工程项目信息对象 project_info
 * 
 * @author ERIC
 * @date 2025-10-20
 */
public class ProjectInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 工程项目名称 */
    @Excel(name = "工程项目名称")
    private String projectName;

    /** 立项审批单位 */
    @Excel(name = "立项审批单位")
    private String approvalAuthority;

    /** 立项批复文件 */
    @Excel(name = "立项批复文件")
    private String approvalDocument;

    /** 立项批复时间 */
    @Excel(name = "立项批复时间")
    private String approvalDate;

    /** 初设批复文件 */
    @Excel(name = "初设批复文件")
    private String preliminaryDesignDocument;

    /** 初设批复时间 */
    @Excel(name = "初设批复时间")
    private String preliminaryDesignDate;

    /** 批复建设内容 */
    @Excel(name = "批复建设内容")
    private String approvedConstructionContent;

    /** 批复概算（万元） */
    @Excel(name = "批复概算（万元）")
    private BigDecimal approvedBudget;

    /** 采购项目名称 */
    @Excel(name = "采购项目名称")
    private String procurementProjectName;

    /** 项目类别（服务/货物/工程） */
    @Excel(name = "项目类别（服务/货物/工程）")
    private String procurementCategory;

    /** 采购内容 */
    @Excel(name = "采购内容")
    private String procurementContent;

    /** 采购方式 */
    @Excel(name = "采购方式")
    private String procurementMethod;

    /** 采购代理机构 */
    @Excel(name = "采购代理机构")
    private String procurementAgent;

    /** 公告时间 */
    @Excel(name = "公告时间")
    private String announcementTime;

    /** 公告平台 */
    @Excel(name = "公告平台")
    private String announcementPlatform;

    /** 送标人及联系方式 */
    @Excel(name = "送标人及联系方式")
    private String bidderContactInfo;

    /** 参投单位（代理人） */
    @Excel(name = "参投单位（代理人）")
    private String biddingParticipants;

    /** 中标单位（法人） */
    @Excel(name = "中标单位（法人）")
    private String winningBidder;

    /** 开评审地点 */
    @Excel(name = "开评审地点")
    private String reviewLocation;

    /** 评审时间 */
    @Excel(name = "评审时间")
    private String reviewTime;

    /** 业主代表 */
    @Excel(name = "业主代表")
    private String ownerRepresentative;

    /** 参评业主代表联系方式 */
    @Excel(name = "参评业主代表联系方式")
    private String ownerRepresentativeContact;

    /** 中标公示时间 */
    @Excel(name = "中标公示时间")
    private String winningAnnouncementTime;

    /** 公示平台 */
    @Excel(name = "公示平台")
    private String winningAnnouncementPlatform;

    /** 中标金额 */
    @Excel(name = "中标金额")
    private BigDecimal winningBidAmount;

    /** 结算金额 */
    @Excel(name = "结算金额")
    private BigDecimal settlementAmount;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 合同号 */
    @Excel(name = "合同号")
    private String contractNumber;

    /** 合同主要内容 */
    @Excel(name = "合同主要内容")
    private String contractContent;

    /** 合同谈判日期 */
    @Excel(name = "合同谈判日期")
    private String negotiationDate;

    /** 合同签订日期 */
    @Excel(name = "合同签订日期")
    private String contractSignDate;

    /** 合同金额（万元） */
    @Excel(name = "合同金额（万元）")
    private BigDecimal contractAmount;

    /** 甲方合同签署代表 */
    @Excel(name = "甲方合同签署代表")
    private String partyASignatory;

    /** 乙方合同签署代表 */
    @Excel(name = "乙方合同签署代表")
    private String partyBSignatory;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String projectManager;

    /** 甲方现场负责人或代表 */
    @Excel(name = "甲方现场负责人或代表")
    private String siteRepresentativePartyA;

    /** 甲方经办人及联系电话 */
    @Excel(name = "甲方经办人及联系电话")
    private String handlerPartyA;

    /** 乙方经办人及联系电话 */
    @Excel(name = "乙方经办人及联系电话")
    private String handlerPartyB;

    /** 最终决算金额 */
    @Excel(name = "最终决算金额")
    private BigDecimal finalSettlementAmount;

    /** 是否完成财务决算审计：0-否，1-是 */
    @Excel(name = "是否完成财务决算审计")
    private String isFinancialAuditCompleted;

    /** 是否进行财务决算评审：0-否，1-是 */
    @Excel(name = "是否进行财务决算评审")
    private String isFinancialReviewCompleted;

    /** 创建时间 */
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 审核意见时间 */
    @Excel(name = "审核意见时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date commentData;

    /** 更新时间 */
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 审核意见 */
    @Excel(name = "审核意见")
    private String comment;

    /** 状态 -1 未处理 0 作废 1.审核通过 2.预留 */
    @Excel(name = "状态", readConverterExp = "-1=未处理,0=作废,1=审核通过,2=预留")
    private String status;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }
    public void setApprovalAuthority(String approvalAuthority) 
    {
        this.approvalAuthority = approvalAuthority;
    }

    public String getApprovalAuthority() 
    {
        return approvalAuthority;
    }
    public void setApprovalDocument(String approvalDocument) 
    {
        this.approvalDocument = approvalDocument;
    }

    public String getApprovalDocument() 
    {
        return approvalDocument;
    }
    public void setApprovalDate(String approvalDate) 
    {
        this.approvalDate = approvalDate;
    }

    public String getApprovalDate() 
    {
        return approvalDate;
    }
    public void setPreliminaryDesignDocument(String preliminaryDesignDocument) 
    {
        this.preliminaryDesignDocument = preliminaryDesignDocument;
    }

    public String getPreliminaryDesignDocument() 
    {
        return preliminaryDesignDocument;
    }
    public void setPreliminaryDesignDate(String preliminaryDesignDate) 
    {
        this.preliminaryDesignDate = preliminaryDesignDate;
    }

    public String getPreliminaryDesignDate() 
    {
        return preliminaryDesignDate;
    }
    public void setApprovedConstructionContent(String approvedConstructionContent) 
    {
        this.approvedConstructionContent = approvedConstructionContent;
    }

    public String getApprovedConstructionContent() 
    {
        return approvedConstructionContent;
    }
    public void setApprovedBudget(BigDecimal approvedBudget) 
    {
        this.approvedBudget = approvedBudget;
    }

    public BigDecimal getApprovedBudget() 
    {
        return approvedBudget;
    }
    public void setProcurementProjectName(String procurementProjectName) 
    {
        this.procurementProjectName = procurementProjectName;
    }

    public String getProcurementProjectName() 
    {
        return procurementProjectName;
    }
    public void setProcurementCategory(String procurementCategory) 
    {
        this.procurementCategory = procurementCategory;
    }

    public String getProcurementCategory() 
    {
        return procurementCategory;
    }
    public void setProcurementContent(String procurementContent) 
    {
        this.procurementContent = procurementContent;
    }

    public String getProcurementContent() 
    {
        return procurementContent;
    }
    public void setProcurementMethod(String procurementMethod) 
    {
        this.procurementMethod = procurementMethod;
    }

    public String getProcurementMethod() 
    {
        return procurementMethod;
    }
    public void setProcurementAgent(String procurementAgent) 
    {
        this.procurementAgent = procurementAgent;
    }

    public String getProcurementAgent() 
    {
        return procurementAgent;
    }
    public void setAnnouncementTime(String announcementTime) 
    {
        this.announcementTime = announcementTime;
    }

    public String getAnnouncementTime() 
    {
        return announcementTime;
    }
    public void setAnnouncementPlatform(String announcementPlatform) 
    {
        this.announcementPlatform = announcementPlatform;
    }

    public String getAnnouncementPlatform() 
    {
        return announcementPlatform;
    }
    public void setBidderContactInfo(String bidderContactInfo) 
    {
        this.bidderContactInfo = bidderContactInfo;
    }

    public String getBidderContactInfo() 
    {
        return bidderContactInfo;
    }
    public void setBiddingParticipants(String biddingParticipants) 
    {
        this.biddingParticipants = biddingParticipants;
    }

    public String getBiddingParticipants() 
    {
        return biddingParticipants;
    }
    public void setWinningBidder(String winningBidder) 
    {
        this.winningBidder = winningBidder;
    }

    public String getWinningBidder() 
    {
        return winningBidder;
    }
    public void setReviewLocation(String reviewLocation) 
    {
        this.reviewLocation = reviewLocation;
    }

    public String getReviewLocation() 
    {
        return reviewLocation;
    }
    public void setReviewTime(String reviewTime) 
    {
        this.reviewTime = reviewTime;
    }

    public String getReviewTime() 
    {
        return reviewTime;
    }
    public void setOwnerRepresentative(String ownerRepresentative) 
    {
        this.ownerRepresentative = ownerRepresentative;
    }

    public String getOwnerRepresentative() 
    {
        return ownerRepresentative;
    }
    public void setOwnerRepresentativeContact(String ownerRepresentativeContact) 
    {
        this.ownerRepresentativeContact = ownerRepresentativeContact;
    }

    public String getOwnerRepresentativeContact() 
    {
        return ownerRepresentativeContact;
    }
    public void setWinningAnnouncementTime(String winningAnnouncementTime) 
    {
        this.winningAnnouncementTime = winningAnnouncementTime;
    }

    public String getWinningAnnouncementTime() 
    {
        return winningAnnouncementTime;
    }
    public void setWinningAnnouncementPlatform(String winningAnnouncementPlatform) 
    {
        this.winningAnnouncementPlatform = winningAnnouncementPlatform;
    }

    public String getWinningAnnouncementPlatform() 
    {
        return winningAnnouncementPlatform;
    }
    public void setWinningBidAmount(BigDecimal winningBidAmount) 
    {
        this.winningBidAmount = winningBidAmount;
    }

    public BigDecimal getWinningBidAmount() 
    {
        return winningBidAmount;
    }
    public void setSettlementAmount(BigDecimal settlementAmount) 
    {
        this.settlementAmount = settlementAmount;
    }

    public BigDecimal getSettlementAmount() 
    {
        return settlementAmount;
    }
    public void setContractName(String contractName) 
    {
        this.contractName = contractName;
    }

    public String getContractName() 
    {
        return contractName;
    }
    public void setContractNumber(String contractNumber) 
    {
        this.contractNumber = contractNumber;
    }

    public String getContractNumber() 
    {
        return contractNumber;
    }
    public void setContractContent(String contractContent) 
    {
        this.contractContent = contractContent;
    }

    public String getContractContent() 
    {
        return contractContent;
    }
    public void setNegotiationDate(String negotiationDate) 
    {
        this.negotiationDate = negotiationDate;
    }

    public String getNegotiationDate() 
    {
        return negotiationDate;
    }
    public void setContractSignDate(String contractSignDate) 
    {
        this.contractSignDate = contractSignDate;
    }

    public String getContractSignDate() 
    {
        return contractSignDate;
    }
    public void setContractAmount(BigDecimal contractAmount) 
    {
        this.contractAmount = contractAmount;
    }

    public BigDecimal getContractAmount() 
    {
        return contractAmount;
    }
    public void setPartyASignatory(String partyASignatory) 
    {
        this.partyASignatory = partyASignatory;
    }

    public String getPartyASignatory() 
    {
        return partyASignatory;
    }
    public void setPartyBSignatory(String partyBSignatory) 
    {
        this.partyBSignatory = partyBSignatory;
    }

    public String getPartyBSignatory() 
    {
        return partyBSignatory;
    }
    public void setProjectManager(String projectManager) 
    {
        this.projectManager = projectManager;
    }

    public String getProjectManager() 
    {
        return projectManager;
    }
    public void setSiteRepresentativePartyA(String siteRepresentativePartyA) 
    {
        this.siteRepresentativePartyA = siteRepresentativePartyA;
    }

    public String getSiteRepresentativePartyA() 
    {
        return siteRepresentativePartyA;
    }
    public void setHandlerPartyA(String handlerPartyA) 
    {
        this.handlerPartyA = handlerPartyA;
    }

    public String getHandlerPartyA() 
    {
        return handlerPartyA;
    }
    public void setHandlerPartyB(String handlerPartyB) 
    {
        this.handlerPartyB = handlerPartyB;
    }

    public String getHandlerPartyB() 
    {
        return handlerPartyB;
    }
    public void setFinalSettlementAmount(BigDecimal finalSettlementAmount) 
    {
        this.finalSettlementAmount = finalSettlementAmount;
    }

    public BigDecimal getFinalSettlementAmount() 
    {
        return finalSettlementAmount;
    }
    public void setIsFinancialAuditCompleted(String isFinancialAuditCompleted) 
    {
        this.isFinancialAuditCompleted = isFinancialAuditCompleted;
    }

    public String getIsFinancialAuditCompleted() 
    {
        return isFinancialAuditCompleted;
    }
    public void setIsFinancialReviewCompleted(String isFinancialReviewCompleted) 
    {
        this.isFinancialReviewCompleted = isFinancialReviewCompleted;
    }

    public String getIsFinancialReviewCompleted() 
    {
        return isFinancialReviewCompleted;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setCommentData(Date commentData) 
    {
        this.commentData = commentData;
    }

    public Date getCommentData() 
    {
        return commentData;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }
    public void setComment(String comment) 
    {
        this.comment = comment;
    }

    public String getComment() 
    {
        return comment;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectName", getProjectName())
            .append("approvalAuthority", getApprovalAuthority())
            .append("approvalDocument", getApprovalDocument())
            .append("approvalDate", getApprovalDate())
            .append("preliminaryDesignDocument", getPreliminaryDesignDocument())
            .append("preliminaryDesignDate", getPreliminaryDesignDate())
            .append("approvedConstructionContent", getApprovedConstructionContent())
            .append("approvedBudget", getApprovedBudget())
            .append("procurementProjectName", getProcurementProjectName())
            .append("procurementCategory", getProcurementCategory())
            .append("procurementContent", getProcurementContent())
            .append("procurementMethod", getProcurementMethod())
            .append("procurementAgent", getProcurementAgent())
            .append("announcementTime", getAnnouncementTime())
            .append("announcementPlatform", getAnnouncementPlatform())
            .append("bidderContactInfo", getBidderContactInfo())
            .append("biddingParticipants", getBiddingParticipants())
            .append("winningBidder", getWinningBidder())
            .append("reviewLocation", getReviewLocation())
            .append("reviewTime", getReviewTime())
            .append("ownerRepresentative", getOwnerRepresentative())
            .append("ownerRepresentativeContact", getOwnerRepresentativeContact())
            .append("winningAnnouncementTime", getWinningAnnouncementTime())
            .append("winningAnnouncementPlatform", getWinningAnnouncementPlatform())
            .append("winningBidAmount", getWinningBidAmount())
            .append("settlementAmount", getSettlementAmount())
            .append("contractName", getContractName())
            .append("contractNumber", getContractNumber())
            .append("contractContent", getContractContent())
            .append("negotiationDate", getNegotiationDate())
            .append("contractSignDate", getContractSignDate())
            .append("contractAmount", getContractAmount())
            .append("partyASignatory", getPartyASignatory())
            .append("partyBSignatory", getPartyBSignatory())
            .append("projectManager", getProjectManager())
            .append("siteRepresentativePartyA", getSiteRepresentativePartyA())
            .append("handlerPartyA", getHandlerPartyA())
            .append("handlerPartyB", getHandlerPartyB())
            .append("finalSettlementAmount", getFinalSettlementAmount())
            .append("isFinancialAuditCompleted", getIsFinancialAuditCompleted())
            .append("isFinancialReviewCompleted", getIsFinancialReviewCompleted())
            .append("createdAt", getCreatedAt())
            .append("commentData", getCommentData())
            .append("updatedAt", getUpdatedAt())
            .append("comment", getComment())
            .append("status", getStatus())
            .toString();
    }
}